package com.zzw.mapper;

import com.zzw.entity.Role;
import com.zzw.page.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Project: warehouse
 * @Description: 角色接口
 * @Author: zzw
 */
public interface RoleMapper {

    // 查询状态正常的所有角色
    List<Role> findAllRole();

    // 根据用户id查询用户已分配的角色
    List<Role> findRolesByUserId(Integer userId);

    // 根据用户id删除给用户已分配的所有角色
    int delRolesByUserId(Integer userId);

    // 根据角色名称查询角色id
    int getRoleIdByName(String roleName);

    // 添加用户角色关系
    int insertUserRole(@Param("userId") Integer userId, @Param("roleId") Integer roleId);

    // 查询角色总行数
    int selectRoleCount(Role role);

    // 分页查询角色
    List<Role> selectRolePage(@Param("page") Page page, @Param("role") Role role);

    // 根据角色名称或者角色代码查询角色
    Role findRoleByNameOrCode(@Param("roleName") String roleName, @Param("roleCode") String roleCode);

    // 添加角色
    int insertRole(Role role);

    // 根据id修改角色状态
    int updateRoleState(Role role);

    // 根据角色id查询角色已分配的所有权限的id
    List<Integer> findAuthIds(Integer roleId);

    // 根据角色id删除角色
    int deleteRoleById(Integer roleId);

    // 根据角色id修改角色描述方法
    int updateDescById(Role role);
}
